#ifndef __FW_STATE_H__
#define __FW_STATE_H__

#include <vector>
#include "Entity.h"
#include "Define.h"

/**
Game state
Abstract methods:
->FWint Init();
*/
class State
{
protected:
	std::vector<Entity*> m_lstEntities;
	FWuint m_iCount;
public:
	virtual ~State();

	virtual FWint Init() = 0;
	virtual void Destroy();

	virtual void Update(FWfloat deltaTime);
	virtual void Draw();

	virtual void Key(const FWobject sender, FWobject extra);
	virtual void Touch(const FWobject sender, FWobject extra);
};

#endif